package com.hh.admin.moduletype.service;

import java.sql.SQLException;
import java.util.List;
import org.apache.log4j.Logger;
import com.hh.admin.moduletype.form.ModuleTypeForm;
import com.hh.common.ibatis.dao.IQueryDao;
import com.hh.common.ibatis.dao.IUpdateDao;

public class ModuleTypeService {
	
private static final Logger log = Logger.getLogger(ModuleTypeService.class);
    
    private IQueryDao queryDao;
    
    private IUpdateDao updateDao;

    /**
     * 分页查询模块类型列表
     * @param form 查询表单数据封装
     * @return
     * @throws SQLException
     * @create 2013-1-20 下午14:57:58
     */
    public List<ModuleTypeForm> getModuleTypeInfoList(ModuleTypeForm form) throws SQLException {
    	List<ModuleTypeForm> resultList = null;
    	form.setOffset((form.getCurrentPage()-1)*form.getPageSize());
    	resultList = queryDao.queryForObjectList("moduletype.selModuleTypeList", form);
    	return resultList;
    }

    /**
     * 统计模块类型总数
     * @param form
     * @return
     */
    public int getModuleTypeInfoTotleCnt(ModuleTypeForm moduleForm){
    	int totleCnt = 0;
    	try {
            Integer rs = queryDao.queryForObject("moduletype.selModuleTypeCount", Integer.class);
            if(rs != null) {
                totleCnt = rs;
            }
        } catch (ClassCastException e) {
            log.error("moduletype.selModuleTypeCount 查询ClassCastException异常：" + e.toString());
            e.printStackTrace();
        } catch (SQLException e) {
            log.error("moduletype.selModuleTypeCount 查询SQLException异常：" + e.toString());
            e.printStackTrace();
        }
    	return totleCnt;
    }
    
    /**
     * 删除模块类型记录
     * @param id 模块类型ID
     * @return
     * @throws SQLException
     */
    public int deleteOneProducttype(int id) throws SQLException {
        return updateDao.delete("moduletype.deleteModuleType", id);
    }
    
    /**
     * 添加模块类型单记录
     * @param form
     * @return
     * @throws SQLException
     */
    public int insertProducttype(ModuleTypeForm form) throws SQLException {
        return (Integer) updateDao.insert("moduletype.insertModuleType", form);
    }
    
    /**
     * 获取模块类型记录详情
     * @param id 模块类型ID
     * @return 模块类型详情
     */
    public ModuleTypeForm getModuleTypeDetail(int id) throws ClassCastException, SQLException {
        return queryDao.queryForObject("moduletype.selModuleTypeDetail", id, ModuleTypeForm.class);
    }
    
    /**
     * 更新模块类型信息
     * @param form 表单项
     * @return
     * @throws SQLException
     */
    public int updateProductType(ModuleTypeForm form) throws SQLException {
        return updateDao.update("moduletype.undateModuletype", form);
    }
    
    /**
     * 批量删除模块类型记录
     * @param ids 要删除的模块类型ID
     * @return
     */
    public int deleteManyModuletype(Integer[] ids) throws SQLException {
        return updateDao.batchDelete("moduletype.deleteModuleType", ids);
    }
    
	public IQueryDao getQueryDao() {
		return queryDao;
	}

	public void setQueryDao(IQueryDao queryDao) {
		this.queryDao = queryDao;
	}

	public IUpdateDao getUpdateDao() {
		return updateDao;
	}

	public void setUpdateDao(IUpdateDao updateDao) {
		this.updateDao = updateDao;
	}
    
}
